Server load balancing is the process of distributing network traffic among servers for processing. The distributed network traffic can include stateful or stateless traffic. Stateful network traffic can be organized into network flows, each of which typically are consistently handled by one server to avoid disruptions in service. Stateful network traffic can include, for example, TCP/IP traffic or traffic to a website that stores state information about a particular “session” (i.e. a webmail application). To the contrary, stateless traffic does not have to be handled consistently by one server. Stateless network traffic can include, for example, UDP/IP traffic or domain name system (DNS) query traffic.
Generally speaking, hash tables are data structures used by computing devices to store elements of data. In one example, hash tables store elements in hash table buckets. Elements are stored in the hash table buckets and are accessed and inserted using a hash function. A hash function takes as input in one example a key associated with a particular element. The output of the hash function is a hash table index associated with a hash table bucket. The hash table index can be used to identify which hash table bucket to read an element from or insert an element into.